# 服务端实例
import socket  # 导入 socket 模块

s = socket.socket()  # 创建 socket 对象
host = socket.gethostname()  # 获取本地主机名
port = 12345  # 设置端口
s.bind((host, port))  # 绑定端口

s.listen(5)  # 等待客户端连接（开始TCP监听。backlog 指定在拒绝连接之前，操作系统可以挂起的最大连接数量。该值至少为 1，大部分应用程序设为 5 就可以了。）
while True:
    c, addr = s.accept()  # 建立被动接受TCP客户端连接,(阻塞式)等待连接的到来
    print("连接的客户端地址：", addr)

    c.send("hello，我是服务器".encode("gbk"))  # 发送TCP数据，将string中的数据发送到连接的套接字(传输是以字节流的方式传输，所以需要转换)
    print(c.recv(1024).decode("gbk"))  # 接收TCP数据，数据以字符串形式返回(传输是以字节流的方式传输，所以需要转换)
    c.close()  # 关闭连接